package cn.outsourcing.supermarket.converter;

import cn.outsourcing.supermarket.converter.transform.IntegerToBooleanTransform;
import cn.outsourcing.supermarket.converter.transform.StringToBooleanTransform;
import cn.outsourcing.supermarket.dto.backstage.BackstageGoodsStoreInfoDTO;
import cn.outsourcing.supermarket.po.HiolabsGoods;
import cn.outsourcing.supermarket.vo.ProductSpecificationVO;
import cn.outsourcing.supermarket.vo.backstage.BackstageSpecDataVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 后台商品对象转换器
 *
 * @author gzkemays
 * @since 2021/11/3 23:09
 */
@Mapper(uses = {IntegerToBooleanTransform.class, StringToBooleanTransform.class})
public interface BackstageGoodsConverter {
  BackstageGoodsConverter INSTANCE = Mappers.getMapper(BackstageGoodsConverter.class);

  /**
   * 转化为缺省值对象
   *
   * @param vo 完整值对象
   * @return 缺省值对象
   */
  BackstageSpecDataVO convertToEzSpecData(ProductSpecificationVO vo);
  /**
   * 转化为缺省值对象列表
   *
   * @param vo 完整值对象列表
   * @return 缺省值对象列表
   */
  List<BackstageSpecDataVO> convertToEzSpecDataList(List<ProductSpecificationVO> vo);

  /**
   * 后台保存商品数据转化为原 po
   *
   * @param goods 后台保存商品数据
   * @return 原 po
   */
  HiolabsGoods convertBackstageGoodsStoreInfoToPo(BackstageGoodsStoreInfoDTO goods);
  /**
   * 后台保存商品数据转化为原 po list
   *
   * @param goods 后台保存商品数据
   * @return 原 po list
   */
  List<HiolabsGoods> convertBackstageGoodsStoreInfoToPo(List<BackstageGoodsStoreInfoDTO> goods);
}
